package swing.samples.java2sdotcom.label;

import java.awt.Color;
import java.awt.Cursor;
import java.awt.Graphics;
import java.awt.Insets;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JLabel;

/**
 * @Title: JHyperlinkLabel.java
 * @Description: TODO(显示为超链接样式的 jlabel)
 * @author H819
 * @date 2010-10-4
 * @version V1.0
 */
public class JHyperlinkLabel extends JLabel {
	private Color underlineColor = null;

	public JHyperlinkLabel(String label) {
		super(label);

		setForeground(Color.BLUE.darker());
		setCursor(new Cursor(Cursor.HAND_CURSOR));
		addMouseListener(new HyperlinkLabelMouseAdapter());
	}

	@Override
	protected void paintComponent(Graphics g) {
		super.paintComponent(g);

		g.setColor(underlineColor == null ? getForeground() : underlineColor);

		Insets insets = getInsets();

		int left = insets.left;
		if (getIcon() != null)
			left += getIcon().getIconWidth() + getIconTextGap();

		g.drawLine(left, getHeight() - 1 - insets.bottom,
				(int) getPreferredSize().getWidth() - insets.right, getHeight()
						- 1 - insets.bottom);
	}

	public class HyperlinkLabelMouseAdapter extends MouseAdapter {
		@Override
		public void mouseClicked(MouseEvent e) {
			System.out.println(getText());
		}
	}

	public Color getUnderlineColor() {
		return underlineColor;
	}

	public void setUnderlineColor(Color underlineColor) {
		this.underlineColor = underlineColor;
	}
}
